package com.cw.jeeyt.common.enums;

import java.io.Serializable;

import com.cw.lang.common.enums.IEnum;

import lombok.Getter;
import lombok.ToString;

/**
 * 条目数据类型
 */
@Getter
@ToString
public enum EnumDataJavaType implements IEnum, Serializable {
    /** 字节码 **/
    BYTE("01", "byte","字节"),
    /** 整数 **/
    INTEGER("02", "Integer","整数"),
    /** 字符串 **/
    STRING("03", "String","字符串"),
    /** 日期类型 **/
    DATE("04", "java.util.Date","日期类型"),
    /** bool类型 **/
    BOOLEAN("05", "Boolean","bool类型"),
    /** 浮点类型 **/
    SHORT("06", "short","短整型"),
    /** 长整型 **/
    LONG("07", "Long","长整型"),
    /** double类型 **/
    DOUBLE("08", "double","double类型"),
    /** bigDecimal类型 **/
    BIGDECIMAL("09", "java.math.BigDecimal","bigdecimal类型"),
    /** FLOAT类型 **/
    FLOAT("10", "float","float类型");

    /** 编码 **/
    private String code;
    /** 类型 */
    private String value;
    /** 描述 **/
    private String description;

    /**
     * 私有构造方法
     *
     * @param code 编码
     * @param value 类型
     * @param description 描述
     **/
    EnumDataJavaType(String code, String value, String description) {
        this.code = code;
        this.value = value;
        this.description = description;
    }

    /**
     * 根据编码查找枚举
     *
     * @param code 编码
     **/
    public static EnumDataJavaType find(String code) {
        for (EnumDataJavaType frs : EnumDataJavaType.values()) {
            if (frs.getCode()
                .equals(code)) {
                return frs;
            }
        }
        return null;
    }
}
